package com.yc.bbs.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import java.io.Serializable;
import java.sql.Timestamp;
import java.time.LocalDateTime;

import javax.validation.constraints.NotEmpty;

import lombok.Data;
import org.hibernate.validator.constraints.Length;

import lombok.Getter;
import lombok.Setter;

/**
 * <p>
 * BBS论坛-用户表-6
 * </p>
 *
 * @author ly
 * @since 2024-11-23
 */
@Getter
@Setter
@TableName("tbl_user")
public class User implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 编号, 自增列
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 用户中文名
     */
    @TableField("cname")
    private String cname;
    /**
     * 用户英文名
     */
    @NotEmpty(message = "用户名不能为空！")
    @Length(min = 2, max = 20, message = "用户名必须是2~20个字符！")
    @TableField("uname")
    private String uname;

    /**
     * 密码
     */
    @NotEmpty(message = "密码不能为空！")
    @Length(min = 6, max = 20, message = "密码必须是6~20个字符！")
    @TableField("upass")
    private String upass;

    /**
     * 头像图片地址
     */
    @NotEmpty(message = "头像不能为空！")
    @TableField("head")
    private String head;

    /**
     * 注册时间
     */
    @TableField("regtime")
    private Timestamp regtime;

    /**
     * 性别: 1男,0女
     */
    @TableField("gender")
    private Integer gender;

    /**
     * 忘密问题1
     */
    @TableField("q1")
    private String q1;

    /**
     * 忘密问题答案1
     */
    @TableField("a1")
    private String a1;

    /**
     * 忘密问题2
     */
    @TableField("q2")
    private String q2;

    /**
     * 忘密问题答案2
     */
    @TableField("a2")
    private String a2;

    /**
     * 忘密问题3
     */
    @TableField("q3")
    private String q3;

    /**
     * 忘密问题答案3
     */
    @TableField("a3")
    private String a3;

    /**
     * 邮箱地址
     */
    @TableField("email")
    private String email;

    /**
     * 用户角色
     */
    @TableField("role")
    private String role;


    /**
     * 状态: 1管理员, 2用户, 3禁用
     */
    @TableField("status")
    private Integer status;

    @TableField(exist = false)
    private Integer autoTime;

    @TableField(exist = false)
    String requestURI;
}
